package GUI.almacen;

import items.ContenedordeCompra;
import items.Item;
import items.ItemCompra;
import items.Proveedor;

import java.awt.BorderLayout;
import java.util.ArrayList;

import javax.swing.JDialog;
import javax.swing.JPanel;

public class DialogoCompraProductos extends JDialog{

	private PanelProductosDialogoCompraProductos _pp;
	private PanelCompradeDialogoCompraProductos _pc;
	private Proveedor _proveedor;
	private String _nombreproveedor;
	private Pedidos _pedidos;
	private static final long serialVersionUID = 1L;
	private ContenedordeCompra _lista_deseo;
	
	
	public DialogoCompraProductos(String nombreProveedor,Pedidos pedidos) {
		
		this.getContentPane().setLayout(new BorderLayout());
		_lista_deseo=new ContenedordeCompra();
		_pedidos=pedidos;
		_nombreproveedor=nombreProveedor;
		this.getContentPane().setLayout(new BorderLayout());
		
		//PANEL DONDE ESTAN LOS PRODUCTOS DEL PROVEEDOR
		JPanel panelSuperior= new JPanel();
		construye_segun_nombre_proveedor(_nombreproveedor);
		_pp=new PanelProductosDialogoCompraProductos(this, _proveedor);
		panelSuperior.add(_pp);
		this.getContentPane().add(panelSuperior,BorderLayout.NORTH);
		
		//PANEL DONDE APARECEN LOS PRODUCTOS QUE VOY COMPRANDO
		JPanel panelInferior= new JPanel(new BorderLayout());
		_pc= new PanelCompradeDialogoCompraProductos(this,_lista_deseo);
		panelInferior.add(_pc);
		this.getContentPane().add(panelInferior,BorderLayout.SOUTH);

		configurar_dialogo();
	}
	
	private void configurar_dialogo(){
		this.setTitle("Productos");
 		this.setResizable(false);
 		this.pack();
 		this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 		this.setLocationRelativeTo(null);
 		this.setModal(true);	
	}
	
	private void construye_segun_nombre_proveedor(String nombreProveedor){
		if(nombreProveedor.equalsIgnoreCase("proveedor1")){
			_proveedor= new Proveedor(1, "proveedor1","direccionP1","telfp1");
		}
	}

 
	public void adicionarCompra(Item item, int cantidad) {
		if(cantidad!=0){
			_lista_deseo.anadirCompra(item, cantidad);
			_pc.actualizarCompra();
			_pc.colocarValorToTal(_lista_deseo.calcularValorTotalCompra());
		}
	}

	public void borrarCompra(ItemCompra itemBorrar) {
			_lista_deseo.borrarItemCompra(itemBorrar);
			_pc.actualizarCompra();
			_pc.colocarValorToTal(_lista_deseo.calcularValorTotalCompra());
		
	}

	public void encolar_pedido(String dameTotal) {
		ArrayList<ItemCompra> listadeCompra= _lista_deseo.darListaCompra();
		ArrayList<Item> lista_del_pedido= new ArrayList<Item>();
		Item items;
		
		int id;
		String nombre;
		String categoria;
		String marca;
		double precio;
		int cantidad;
		String fechaCaducidad;
		for(int i=0; i<listadeCompra.size();i++){
			 id=listadeCompra.get(i).getItem().getID();
			 nombre=listadeCompra.get(i).getItem().getNombre();
			 categoria=listadeCompra.get(i).getItem().getDescripcion();
			 marca=listadeCompra.get(i).getItem().getMarca();
			 precio=listadeCompra.get(i).getItem().getPrecio();
			 cantidad=listadeCompra.get(i).getCantidadItem();
	         fechaCaducidad=listadeCompra.get(i).getItem().getFechaCaducidad();
	         items=new Item(id, nombre, categoria, marca, precio, cantidad, fechaCaducidad);
	         lista_del_pedido.add(items);  
		}
		_pedidos.meter_lista_de_pedido(lista_del_pedido,dameTotal,_nombreproveedor);

	}

	public void cerrarVentana() {
		this.dispose();
		
	}

 
 

}
